過去筆者也是毫無目的的亂練一通,
直到爬了一系列的貼文後,包含ITHome各位大神以及Dcard。
開始有目的性的刷題,本人也是新手,還請大家多多指教。
之前很紅的Blind75,意思就是毫無目的刷這75題。
但Blind75的原作者改善出了新的Grind75,至今又擴充至Grind169。
並且建立一個網站幫助大家建立刷題計畫,依類型、時間刷題:
https://www.techinterviewhandbook.org/grind75
詳細的刷題方法建議可以依照花花醬的教學:
https://www.youtube.com/watch?v=NdWYxz3izH4
總的來說就是(參考花花醬):
1.同個類型的題目一起刷,如Array、String、Heap、DP等類型的題目。
2.每道題刷3遍以上(leetcode有提供計時器):
3.嘗試使用不同的解法,不同的演算法或是資料結構的應用
4.多看別人的solution,並觀察他們的時間以及空間複雜度
5.不要鑽牛角尖,在同一道題目上花太多時間
關於時間複雜度的比較,請參考下面這張圖:
筆者也建立一個Excel,幫助回顧這道題花了多少時間:
在後續的文章中,將會整理其中題目的時間及空間複雜度,並探討題目的常見誤區及演算法的介紹。謝謝大家!